package com.ccys.db.entity;

import com.ccys.db.rely.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
* Created by Mybatis Generator on 2024/03/06
*/
@Data
@ApiModel("支付信息，合并tbl_booking_cybersource，tbl_booking_goapotik_payment，tbl_booking_acme_payment")
@Table(name = "tbl_booking_payment")
@NoArgsConstructor
@AllArgsConstructor
public class TblBookingPayment extends BaseEntity {
    @Column(name = "group_id")
    private String groupId;

    @Column(name = "booking_id")
    private String bookingId;

    private String country;

    /**
     * 记录顺序 从0开始
     */
    @Column(name = "visit_id")
    @ApiModelProperty("记录顺序 从0开始")
    private Integer visitId;

    @Column(name = "card_id")
    private String cardId;

    @Column(name = "card_code")
    private String cardCode;

    @Column(name = "transaction_id")
    private String transactionId;

    @Column(name = "payment_token")
    private String paymentToken;

    @Column(name = "request_transaction_uuid")
    private String requestTransactionUuid;

    @Column(name = "request_reference_number")
    private String requestReferenceNumber;

    @Column(name = "request_card_number_last4")
    private String requestCardNumberLast4;

    @Column(name = "request_card_type")
    private String requestCardType;

    @Column(name = "request_card_expiry_date")
    private String requestCardExpiryDate;

    @Column(name = "payment_amount")
    private BigDecimal paymentAmount;

    /**
     * 区分支付方式:1paypal,2goapotik,3acme
     */
    @ApiModelProperty("区分支付方式:1paypal,2goapotik,3acme")
    private Integer type;

    @Column(name = "payment_status")
    private Integer paymentStatus;

    @Column(name = "payment_method")
    private String paymentMethod;

    @Column(name = "request_reference_number_child")
    private String requestReferenceNumberChild;

    @Column(name = "transaction_type")
    private Integer transactionType;

    @Column(name = "revised_amount")
    private BigDecimal revisedAmount;

    @Column(name = "payment_method_refund")
    private String paymentMethodRefund;

    @Column(name = "is_from_paypal_gateway")
    private Integer isFromPaypalGateway;

    @Column(name = "paypal_email")
    private String paypalEmail;

    @Column(name = "converted_payment_amount")
    private Float convertedPaymentAmount;

    @Column(name = "exchange_rate")
    private BigDecimal exchangeRate;

    private String currency;

    @Column(name = "payment_vendor")
    private String paymentVendor;

    private String channel;

    @Column(name = "return_url")
    private String returnUrl;

    @Column(name = "redirect_url")
    private String redirectUrl;

    @Column(name = "customer_id")
    private String customerId;

    @Column(name = "increment_id")
    private String incrementId;

    @Column(name = "prescription_number")
    private String prescriptionNumber;

    @Column(name = "payment_method_code")
    private String paymentMethodCode;

    @Column(name = "shipping_method")
    private String shippingMethod;

    @Column(name = "payment_state")
    private String paymentState;

    @Column(name = "invoice_no")
    private String invoiceNo;

    @Column(name = "order_source")
    private String orderSource;

    @Column(name = "request_time")
    private Date requestTime;

    @Column(name = "payment_date_utc")
    private Long paymentDateUtc;

    @Column(name = "merchant_name")
    private String merchantName;

    @Column(name = "hosted_payment_method_id")
    private String hostedPaymentMethodId;

    @Column(name = "captured_on")
    private Long capturedOn;

    @Column(name = "acme_id")
    private String acmeId;

    @Column(name = "patient_label")
    private String patientLabel;

    private String reason;

    @Column(name = "response_json_string")
    private String responseJsonString;

    @Column(name = "payment_detail_json")
    private String paymentDetailJson;

    @Transient
    private List<TblBookingPaymentPhoto> photoList;
}